function updateIB_A(timeStep)
%updateIB_BD solves the diffEq for t = timeStep+dt and returns it
%   Detailed explanation goes here

global t;
global IB_SOCells;
global IB_ACells;
global J_a;

dt = t(timeStep+1) - t(timeStep);
V_IB_A = IB_ACells(timeStep,1,:);
V_IB_A = reshape(V_IB_A,[size(IB_ACells,3) 1]);

for i = 1:size(IB_ACells,3)
    V_c = IB_SOCells(timeStep,1,i);
    k1 = (dt* feval(@IB_A, t(timeStep), IB_ACells(timeStep,:,i),V_c, V_IB_A,J_a)).';
    k2 = (dt* feval(@IB_A, t(timeStep) + dt/2, IB_ACells(timeStep,:,i) + (k1)/2,V_c, V_IB_A,J_a)).';
    k3 = (dt* feval(@IB_A, t(timeStep) + dt/2, IB_ACells(timeStep,:,i)+(k2)/2,V_c, V_IB_A,J_a)).';
    k4 = (dt* feval(@IB_A, t(timeStep) + dt, IB_ACells(timeStep,:,i) + k3,V_c, V_IB_A,J_a)).';
    IB_ACells(timeStep+1,:,i) = IB_ACells(timeStep,:,i) + (k1 + 2*k2 + 2*k3 + k4)/6;
end

end